guint32 grab_time;
gboolean fullscreen;
- int saved_width, saved_height; /* before going fullscreen */
+ struct
+ {
+ int width, height;
+ } saved_fullscreen, saved_maximized;
};
struct _GdkWindowImplWaylandClass
{
if (impl->surface)
{
- impl->saved_width = gdk_window_get_width (window);
- impl->saved_height = gdk_window_get_height (window);
+ impl->saved_maximized.width = gdk_window_get_width (window);
+ impl->saved_maximized.height = gdk_window_get_height (window);
if (impl->shell_surface)
wl_shell_surface_set_maximized (impl->shell_surface, NULL);
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_MAXIMIZED,
0);
+
+ gdk_wayland_window_configure (window,
+ impl->saved_maximized.width,
+ impl->saved_maximized.height,
+ 0);
}
}
if (impl->fullscreen)
return;
- impl->saved_width = gdk_window_get_width (window);
- impl->saved_height = gdk_window_get_height (window);
+ impl->saved_fullscreen.width = gdk_window_get_width (window);
+ impl->saved_fullscreen.height = gdk_window_get_height (window);
wl_shell_surface_set_fullscreen (impl->shell_surface,
WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT,
0,
wl_shell_surface_set_toplevel (impl->shell_surface);
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FULLSCREEN, 0);
- gdk_wayland_window_configure (window, impl->saved_width, impl->saved_height,
+ gdk_wayland_window_configure (window,
+ impl->saved_fullscreen.width,
+ impl->saved_fullscreen.height,
0);
-
impl->fullscreen = FALSE;
}